﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XbsWebAPI.EntityFrameworkCore.Entities.Enums;

namespace XbsWebAPI.EntityFrameworkCore.Entities
{
    /// <summary>
    /// 房型
    /// </summary>
    public class HouseType: XbsBasicClass
    {

        #region 设置房型基本信息

        /// <summary>
        /// 房型名称
        /// </summary>
        [Required]
        public string Name { get; set; }

        /// <summary>
        /// 营位Id
        /// </summary>
        public Guid? CampId { get; set; }

        /// <summary>
        /// 房间面积
        /// </summary>
        public double RoomArea { get; set; }

        /// <summary>
        /// 可入住人数
        /// </summary>
        public int GuestNumber { get; set; }

        /// <summary>
        /// 床型
        /// </summary>
        public BedType BedType { get; set; }

        /// <summary>
        /// 床型尺寸
        /// </summary>
        [Required]
        public string BedSize { get; set; }

        /// <summary>
        /// 是否有窗
        /// </summary>
        public bool HasWindow { get; set; }

        /// <summary>
        /// 早餐份数
        /// </summary>
        public int BreakfastCount { get; set; }

        /// <summary>
        /// 订房须知
        /// </summary>
        [Required]
        public string Description { get; set; }

        #endregion


        #region 设置房型价格

        /// 淡季-基础房价
        /// </summary>
        public decimal LowSeasonBasicPrice { get; set; }

        /// <summary>
        /// 旺季-基础房价
        /// </summary>
        public decimal HighSeasonBasicPrice { get; set; }

        /// <summary>
        /// 淡季-周末价格
        /// </summary>
        public decimal? LowSeasonWeekendPrice { get; set; }

        /// <summary>
        /// 旺季-周末价格
        /// </summary>
        public decimal? HightSeasonWeekendPrice { get; set; }


        /// <summary>
        /// 房型状态，0-待上架，1-已上架，2-已下架
        /// </summary>
        public HouseTypeStatus HouseTypeStatus { get; set; }

        #endregion

        /// <summary>
        /// 房型对应营位
        /// </summary>
        public virtual Camp Camp { get; set; }

        /// <summary>
        /// 节假日列表
        /// </summary>
        public virtual ICollection<HouseTypeHoliday> HouseTypeHolidays { get; set; }

        /// <summary>
        /// 特殊日列表
        /// </summary>
        public virtual ICollection<HouseTypeSpecialDay> HouseTypeSpecialDays { get; set; }

        /// <summary>
        /// 房间列表
        /// </summary>
        public virtual ICollection<Room> Rooms { get; set; }

        /// <summary>
        /// 房型图片列表
        /// </summary>
        public virtual ICollection<HouseTypePicture> HouseTypePictures { get; set; }

        /// <summary>
        /// 配套设施中间表
        /// </summary>
        public virtual ICollection<HouseTypeSupportingFacility> HouseTypeSupportingFacilities { get; set; }


    }
}
